import { IPSAppView } from '../../app/view/ipsapp-view';
import { IPSDEDRCtrlItem } from './ipsdedrctrl-item';
import { IPSDRCtrl } from './ipsdrctrl';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysImage } from '../../res/ipssys-image';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEDRCtrl
 */
export interface IPSDEDRCtrl extends IPSDRCtrl {
  /**
   * 编辑项标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getEditItemCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 编辑项标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  get editItemCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 编辑项标题语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getEditItemCapPSLanguageResMust(): IPSLanguageRes;

  /**
   * 编辑项标题
   * @type {string}
   */
  editItemCaption: string;

  /**
   * 编辑项图标
   *
   * @type {IPSSysImage}
   */
  getEditItemPSSysImage(): IPSSysImage | null;

  /**
   * 编辑项图标
   *
   * @type {IPSSysImage}
   */
  get editItemPSSysImage(): IPSSysImage | null;

  /**
   * 编辑项图标（必须存在）
   *
   * @type {IPSSysImage}
   */
  getEditItemPSSysImageMust(): IPSSysImage;

  /**
   * 表单视图对象
   *
   * @type {IPSAppView}
   */
  getFormPSAppView(): IPSAppView | null;

  /**
   * 表单视图对象
   *
   * @type {IPSAppView}
   */
  get formPSAppView(): IPSAppView | null;

  /**
   * 表单视图对象（必须存在）
   *
   * @type {IPSAppView}
   */
  getFormPSAppViewMust(): IPSAppView;

  /**
   * 关系项集合
   *
   * @type {IPSDEDRCtrlItem[]}
   */
  getPSDEDRCtrlItems(): IPSDEDRCtrlItem[] | null;

  /**
   * 关系项集合
   *
   * @type {IPSDEDRCtrlItem[]}
   */
  get psDEDRCtrlItems(): IPSDEDRCtrlItem[] | null;

  findPSDEDRCtrlItem(objKey: any): IPSDEDRCtrlItem | null;

  /**
   * 全局唯一标记
   * @type {string}
   */
  uniqueTag: string;

  /**
   * 隐藏编辑项
   * @type {boolean}
   * @default false
   */
  hideEditItem: boolean;
}
